Drag and drop quoting mechanism for use with discussion forums

ABSTRACT

A method of quoting content from a post in a discussion forum can include selecting content within a source post of the discussion forum and performing a drag operation. A representation of the selected content can be dragged in coordination with motion of an onscreen pointer. The method further can include inserting the selected content within an open reply form in the discussion forum upon termination of the drag operation.

BACKGROUND Field of the Invention

The present invention relates to online discussion forums and, moreparticularly, to quoting material from a source post for use within areply.

Description of the Related Art

An online discussion forum (discussion forum) refers to a virtualmeeting place such as a Web page, whether available through a publicnetwork, such as the Internet, or a private network, such as anintranet. Within that virtual meeting place, users post messages(posts). Other names for discussion forums can include, but are notlimited to, Web forums, message boards, discussion boards, discussiongroups, and bulletin boards. In general, users can upload posts to thediscussion forum. These posts can be viewed by other users who mayrespond, in turn, by uploading response posts to the discussion forum. Asequence of posts, beginning with a first post and including all otherposts uploaded in response to that initial, or root, post, is referredto as a discussion thread. Users need not be online at the same time toparticipate in a discussion forum.

When authoring a post in a discussion thread, particularly a reply to apost, it may be useful to quote text from an existing post of the samediscussion thread. One way of quoting text from a post is to simply cutand paste the text. The user locates the post that contains the text tobe quoted, referred to as the source post, highlights the desired text,copies the text, navigates to an open reply form, places the cursorwithin the open reply form, and then pastes the text. In this case, theuser must manually enter any identifying attribution parameterscorresponding to the source post, i.e. author name, etc.

One disadvantage of this manner of quoting is the manual nature of theoperation and the time needed to attribute the quoted text to the sourcepost. The user must perform a significant number of actions, i.e. clicksetc., as well as remember identifying information for the source post toproperly attribute the quoted text. Otherwise, the user must navigateback to the source post to determine those attributes.

Another disadvantage is loss of context. When the user navigates awayfrom the source post, the view presented within the browser is lost.Context indicating which posts were displayed, including the sourcepost, as well as the text that was selected within the source post islost. If the attention of the user is diverted during the quotingprocess, the user may inadvertently copy other material, therebyclearing the quoted material from the computer system clipboard. In thatcase, since the context is not maintained, the user would have torelocate the source post, select the desired text again, and thencontinue with the copy operation.

Quote buttons are another mechanism for quoting material from a sourcepost. A quote button can be provided within each post presented in thediscussion forum. When a user wishes to reply to a given post, a replyform is opened. The user can navigate to the source post, select thetext to be quoted, and then activate the quote button located within thesource post. The user then can navigate to an open entry form, where thetext from the quoted post, along with information identifying the sourceof the quoted text, is inserted automatically.

The quote button, while addressing post attribution, does present itsown set of disadvantages. One disadvantage is that including a quotebutton within each post of the discussion forum can have the effect of“polluting” the user interface. This is often seen as overkill in that auser does not wish to quote every post. It may be the case that the userdoes not wish to quote any posts at all. The quote button effectivelybecomes clutter for any posts that are not being quoted. Further, thequote button functions only if a single reply form is opened. If morethan one reply form is open at the time the quote button is activated,the function is unable to determine which open reply form is intendedtarget for the quoted material.

A variation of the quote button concept places the quote button onlywithin open reply forms. Here, the user locates the text to be quoted,selects the text, navigates back to the reply form, and activates thequote button. The selected text is automatically inserted into the replyform along with an indication of the source post. While thisimplementation reduces overall user interface pollution, it stillintroduces an added control, and therefore clutter, within the replyform that may or may not be used. Moreover, both implementations of thequote button, like the manual technique described above, lack theability to preserve context of the markup language page from which thequoted material is taken.

It would be beneficial to provide a technique for quoting material in adiscussion forum in a manner which overcomes the deficiencies describedabove.

SUMMARY OF THE INVENTION

The present invention provides method(s) and apparatus relating todiscussion forums and the quoting of material from a post within adiscussion forum. One embodiment of the present invention can include amethod of quoting content from a post in a discussion forum. The methodcan include selecting content within a source post of the discussionforum and performing a drag operation wherein a representation of theselected content is dragged in coordination with motion of an onscreenpointer. The method further can include inserting the selected contentwithin an open reply form in the discussion forum upon termination ofthe drag operation.

Another embodiment of the present invention can include a method ofquoting content from a post in a discussion forum including identifyingselected content within a source post of the discussion forum anddragging the selected content in coordination with motion of an onscreenpointer. A representation of the selected content can be continuallydisplayed proximate to the pointer and be visually presented insemi-transparent format while being dragged. The method further caninclude creating markup language causing insertion of the selectedcontent and one or more attributes of the source post within an openreply form if the pointer is located over the open reply form whendragging of the selected content terminates.

Yet another embodiment of the present invention can include a machinereadable storage being programmed to cause a machine to perform thevarious steps and/or functions described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

Presently preferred embodiments are shown in the drawings. It should beappreciated, however, that the invention is not limited to the precisearrangements and instrumentalities shown.

FIG. 1 depicts a view of a graphical user interface (GUI) for adiscussion forum which is useful for understanding the embodimentsdisclosed herein.

FIG. 2 depicts the view of FIG. 1 in accordance with another embodimentof the present invention.

FIG. 3 depicts the view of FIG. 1 in accordance with another embodimentof the present invention.

FIG. 4 depicts the view of FIG. 1 in accordance with another embodimentof the present invention.

FIG. 5 depicts the view of FIG. 1 in accordance with another embodimentof the present invention.

FIG. 6 depicts a view of the discussion forum which is useful forunderstanding the embodiments disclosed herein.

FIG. 7 is a flow chart illustrating a method of quoting content from apost of a discussion forum in accordance with yet another embodiment ofthe present invention.

DETAILED DESCRIPTION OF THE INVENTION

While the specification concludes with claims defining the features ofthe invention that are regarded as novel, it is believed that theinvention will be better understood from a consideration of thedescription in conjunction with the drawings. As required, detailedembodiments of the present invention are disclosed herein; however, itis to be understood that the disclosed embodiments are merely exemplaryof the invention, which can be embodied in various forms. Therefore,specific structural and functional details disclosed herein are not tobe interpreted as limiting, but merely as a basis for the claims and asa representative basis for teaching one skilled in the art to variouslyemploy the inventive arrangements in virtually any appropriatelydetailed structure. Further, the terms and phrases used herein are notintended to be limiting but rather to provide an understandabledescription of the invention.

FIG. 1 depicts a view 100 of a graphical user interface (GUI) for adiscussion forum which is useful for understanding the embodimentsdisclosed herein. The view 100 can be rendered within a browser or otherapplication. For example, the browser can navigate to a particularmarkup language document, which when loaded and executed within thebrowser, causes view 100 to be rendered, or visually presented, upon adisplay of a user information processing system. In any case, the view100 presents a plurality of posts 105, 110, 125, and 130 of a particulardiscussion thread relating to “software development”.

In this case, a reply form 115 has been opened and presented responsiveto the selection of reply control 120 within post 110 by a pointer 135or other control mechanism. The reply form 115 can include a subjectline which can be auto-filled with the appropriate subject, i.e. onetaken from the post to which the reply is being submitted, in this casepost 110. As shown, the reply form 115 also can include a text box 140which can receive content including, but not limited to, text, graphics,audio, video, audiovisual material, links to other content, and anyother content that is to be part of the reply to post 110.

FIG. 2 depicts the view of FIG. 1 in accordance with another embodimentof the present invention. More particularly, responsive to one or moreuser commands or inputs, content of the source post 105 can be selectedby pointer 135. In this case, the selected content is the text“regarding software development”. It should be appreciated that the postfrom which text is to be quoted, referred to as the source post, may bethe post to which a reply is being authored or any other post within agiven discussion thread. In this example, the source post 105, thoughlocated on the same page as the post 110 to which reply 115 is beingcreated, is a different post than the post 110.

FIG. 3 depicts the view of FIG. 1 in accordance with another embodimentof the present invention. As shown, after selecting the text “regardingsoftware development” in source post 105, the user has initiated a dragoperation. Typically, a user initiates a drag operation by selecting anobject, in this case the selected text “regarding software development”,and continuing to engage the selection mechanism, i.e. a mouse or otherpointer button, as the pointer control is moved. As the user begins tomove the pointer, the selected object, in this case the text from quote105, can be dragged to a different onscreen location and manipulated orinserted into the target location, i.e. the location where the object isdropped and the drag operation is terminated.

In accordance with one embodiment of the present invention, arepresentation 145 of the selected content, in this case the text, canbe displayed proximate to the pointer 135 as the drag operationcontinues. As shown, the pointer 135 is moved along path 150. As thepointer 135 moves along path 150, the representation 145 of the quotedtext moves along path 150 with the pointer 135. In one embodiment, therepresentation 145 can, but need not, be made to appear semi-transparentand, as shown, specify the content that is being quoted. In the casewhere content other than text is being dragged, another visualidentifier of the content, such as an icon, can be used asrepresentation 145.

FIG. 4 depicts the view of FIG. 1 in accordance with another embodimentof the present invention. More particularly, FIG. 4 illustrates thestate of view 100 after the drag operation has terminated. In this case,the destination, or end point, of path 150 of FIG. 3 was the text box140 of open reply form 115. Responsive to dropping the representation145 of the quoted text over reply form 115, the selected content, inthis case text, from source post 105 can be inserted into the text box140. If the quoted content is other material, i.e. multimedia, audio, animage, or video, a link to that material can be provided in text box 140as well as, or alternatively, an identifier such as an icon. If the iconis inserted, selection of the icon can execute a link to the contentrepresented by the icon. In addition, information attributing the quotedtext to source post 105 also can be inserted. In this case, theinformation can specify attributes which may include, but are notlimited to, the author of the source post, the time of the source post,the date of the source post, as well as any other identifyinginformation, including symbols, regarding the source post that may bedesired.

In one embodiment, the various functions described herein can beprogrammed using JavaScript and Dynamic Hypertext Markup Language(DHTML). In general, markup language pages, including Web pages, thatutilize technologies such as DHTML, HTML, JavaScript, and CascadingStyle Sheets (CSS) can implement features such as drag-and-drop in amanner that is largely consistent with drag-and-drop desktopimplementations. The posts of the discussion thread, for example, can beimplemented such that each post is a separate section represented usingcontainment HTML tags such as “DIV”. The “DIV” tag can be dedicated torepresenting the reply form and can be implemented to parse the DocumentObject Model (DOM) of the browser to find the post from which the quotedtext was taken.

FIG. 5 depicts the view of FIG. 1 in accordance with another embodimentof the present invention. In this embodiment, the target to which thequoted text is to be dropped, or inserted, is not located on the samepage that contains the source post 105. As shown, the representation 145of the quoted material can move with the pointer 135 as previouslydescribed. The user can move the pointer 135 along path 155 to any of avariety of different page navigation controls. In this case, the path155 leads to a page navigation control 160 which is shown as the text“Next Page”. The page navigation control 160 can cause a next page to berendered in the user's browser that includes a next set, or plurality,of posts in the current discussion thread.

Responsive to a particular event or condition, the page navigationcontrol 160 can be activated. In one embodiment, the page navigationcontrol 160 can be activated after the pointer 135 has been located overthe page navigation control 160 for a predetermined, minimum amount oftime and a drag operation is still in process, or ongoing, during thatperiod of time. Any of a variety of mechanisms can be provided to theuser to allow page navigation control 160, or another Web navigationalcontrol for that matter, to be selected, or activated, during a dragoperation. Accordingly, the invention is not intended to be limited onlyto those examples disclosed herein.

FIG. 6 depicts a view 200 which is useful for understanding theembodiments disclosed herein. View 200 can be rendered responsive toactivation of the page navigation control 160 as discussed withreference to FIG. 5. Once the view 200, i.e. the new markup languagepage comprising different posts 205, 210, 225, and 230, is rendered, thedrag operation can continue. Accordingly, as long as the drag operationhas not been terminated, i.e. by the user releasing the selectionmechanism, the representation 145 can remain proximate to the pointer135 while traveling along user-directed path 165. The user can continueto move the pointer 135 along path 165 toward the destination, i.e. openreply form 215. The quoted content can be dropped into the open replyform 215 as previously described.

To implement a drag-and-drop operation across multiple markup languagepages, state information must be maintained. In one embodiment of thepresent invention, when the drag operation is started, a request can beissued to store state information on the page server. This stateinformation can indicate the context of the page that is displayed whenthe drag operation is started. As such, state information can specifywhich posts were displayed upon the screen at the time material wasselected within the source post, which post is the source post, thematerial that is to be quoted from the source post, and the like. Thestate information can be maintained so long as the drag operationcontinues, i.e. until termination. Upon completion of the dragoperation, i.e. dropping the quoted material into the open reply form,the server can be notified and the state information can be deleted orover-written.

By maintaining state information, if the drag operation is terminatedprematurely or inadvertently by the user, the view of the page that wasdisplayed when the user selected the text to be quoted from the sourcepost can be displayed. In illustration, consider the state, or context,of view 100 of FIG. 2 in which the user begins the drag operation. Theuser can move the pointer over the page navigation control 160 to causeanother page, i.e. view 200 of FIG. 6, to be displayed. If the dragoperation is discontinued prior to the user dropping the content withinthe open reply form 215, i.e. due to the user becoming distracted andletting go of the pointer device, etc., the server can revert to thesaved context and present view 100 of FIG. 2. Consequently, if the dragoperation is terminated prior to a drop operation completing in an openreply form, the server can be directed to provide the page containingthe source post in the same context in which the page was originallydisplayed when the user first selected the content for quoting. Thecontent to be quoted can be presented normally or highlighted, i.e.selected, depending upon system preference. This prevents the user fromhaving to search again for the source post in the event that thedrag-and-drop operation did not complete as intended.

FIG. 7 is a flow chart illustrating a method 700 of quoting content froma post of a discussion forum in accordance with yet another embodimentof the present invention. The method 700 can begin in a state in which auser has navigated to a discussion forum and is viewing a plurality ofposts of a particular discussion thread. The posts, as discussed, can bepresented within a markup language page that is rendered within abrowser application executing within a user computer system.

Accordingly, in step 705, responsive to one or more user inputs, contentfrom a source post can be selected. The selected content can be contentthat is displayed or otherwise available within the source post. Thesource post can be one of the plurality of posts of the discussionthread that is displayed within the rendered page.

In step 710, state information for the current page can be stored, forexample on the server that is providing the discussion forum pages,another server, and/or on the information processing system of the user.In any case, the state information can indicate the current page beingdisplayed as well as which posts are displayed in that page, i.e. theactual view shown in the user's browser. Additional state informationcan include identifying information for the post from which content wasselected and the selected content itself. The state information caninclude any information necessary to reload the current page to itspresent state or context. In another embodiment, step 710 can beperformed responsive to initiation of the drag operation rather thanbeing performed following step 705.

In step 715, responsive to one or more user inputs, a drag operation ofthe quoted content can be initiated. As noted, a representation of theselected content can be dragged along a path that follows, or tracks,the motion of the onscreen pointer, which is under user control. Therepresentation of the quoted content can be presented proximate, i.e.can be “pinned to”, the onscreen pointer and presented in asemi-transparent manner if so desired. The representation of the quotedcontent can indicate to the user that the drag operation has beeninitiated.

In step 720, a determination can be made as to whether the user hasselected a page navigation control during the drag operation. If so, themethod can proceed to step 725, where the navigation control can beactivated. In that case, the action associated with the activatednavigation control can be performed. As noted, in one embodiment, a newor next page of posts for the discussion thread can be presented. Themethod then can loop back to step 715 to continue moving therepresentation of the selected content with the pointer along a userdirected path as described herein.

In another embodiment, during the drag operation, if the pointer ismoved to a location near an end or outer perimeter of the viewable areaof the rendered page, instructions can be provided which cause the pageto scroll in the direction indicated by the pointer. For example, ifmoved to the bottom of the viewable area, the page can be made to scrolldown. If the pointer is located at the top portion of the viewable area,the page can be made to scroll up. Similarly, the page can be made toscroll left or right respectively if the pointer is moved to the left orright portion of the viewable area. This can be beneficial when thedestination for the drag operation, i.e. the open form, is not includedor displayed within the viewable portion of the page being displayed,but can be found through scrolling as opposed to opening a new markuplanguage page.

If a page navigation control has not been selected during the dragoperation, the method can proceed to step 730. In step 730, adetermination can be made as to whether the drag operation is continuingor has terminated. If the drag operation has not been terminated, themethod can loop back to step 715 to continue moving the representationof the selected content with the pointer along the user directed path.If, however, the drag operation has terminated, the method can proceedto step 735.

In step 735, a determination can be made as to whether the pointer islocated over an open reply form. If so, the method can proceed to step745. If not, the method can proceed to step 740. In step 740, the pagethat was originally presented that contained the source post can bepresented. If no navigation control causing a different page to bedisplayed was activated while dragging the quoted content, reloading ofthe original page including the source post is not necessary as thatpage is still being displayed. In that case, the page can be made toscroll either up or down to the “DIV” tag corresponding to the sourcepost. If a navigation control has been activated causing a differentpage to be displayed, the page including the source post can bereloaded. In any case, page can be presented according to the storedstate information and, therefore, maintain the same context as when thecontent to be quoted was originally selected. Preserving the contextprevents the user from having to relocate the source post in the eventthat the drag operation was unintentionally or willfully terminated. Theuser can begin from the same starting point, i.e. with the source postbeing displayed and the content that was originally selected for quotingstill selected. After step 740, the method can repeat if so desired inaccordance with user specified input.

If the pointer is located over an open reply form, in step 745, theselected content can be inserted into the open reply form. Any markuplanguage needed for inserting the content as well as proper attributionof the source post can be created and/or included as well. Attributionparameters can include, but are not limited to, the author of the sourcepost, the time stamp of the source post, the date of the source post, anidentifier such as a number of the source post, etc.

The embodiments disclosed herein provide a technique for quickly andeasily quoting content from a post of a discussion forum and includingthat content within a reply. By preserving the context in which thecontent was originally quoted, the user is spared from having torelocate the source post in the event that the drag operation isinadvertently terminated. It further should be appreciated that theembodiments disclosed herein can be used in cases where a plurality ofopen reply forms are open since the user specifies the particular openreply form to be used by having located the pointer over the intendedreply form when the drag operation terminates.

The present invention can be realized in hardware, software, or acombination of hardware and software. The present invention can berealized in a centralized fashion in one computer system or in adistributed fashion where different elements are spread across severalinterconnected computer systems. Any kind of computer system or otherapparatus adapted for carrying out the methods described herein issuited. A typical combination of hardware and software can be ageneral-purpose computer system with a computer program that, when beingloaded and executed, controls the computer system such that it carriesout the methods described herein. The present invention also can beembedded in a computer program product, which comprises all the featuresenabling the implementation of the methods described herein, and whichwhen loaded in a computer system is able to carry out these methods.

The terms “computer program”, “software”, “application”, variants and/orcombinations thereof, in the present context, mean any expression, inany language, code or notation, of a set of instructions intended tocause a system having an information processing capability to perform aparticular function either directly or after either or both of thefollowing: a) conversion to another language, code or notation; b)reproduction in a different material form. For example, a computerprogram can include, but is not limited to, a subroutine, a function, aprocedure, an object method, an object implementation, an executableapplication, an applet, a servlet, a source code, an object code, ashared library/dynamic load library and/or other sequence ofinstructions designed for execution on a computer system.

The terms “a” and “an”, as used herein, are defined as one or more thanone. The term “plurality”, as used herein, is defined as two or morethan two. The term “another”, as used herein, is defined as at least asecond or more. The terms “including” and/or “having”, as used herein,are defined as comprising, i.e. open language.

This invention can be embodied in other forms without departing from thespirit or essential attributes thereof. Accordingly, reference should bemade to the following claims, rather than to the foregoingspecification, as indicating the scope of the invention.

1-20. (canceled)
 21. A computer-implemented method, comprising:selecting, from a source post within a displayed first page of adiscussion forum, content; performing, on the selected content, a dragoperation; displaying, during the drag operation and responsive to acondition associated with a navigation control, a second page consistentwith the navigation control; and dropping, into an open reply formwithin the second page, the selected content.
 22. The method of claim21, wherein the dropping includes inserting the content and anattribution to the source post into the open reply form.
 23. The methodof claim 21, wherein the displaying the second page causes the firstpage to be not displayed.
 24. The method of claim 21, wherein thedisplaying the second page includes reloading and redisplaying the firstpage.
 25. The method of claim 21, wherein the drag operation ismaintained between the first page being displayed and the second pagebeing displayed.
 26. The method of claim 21, wherein the condition is apointer being positioned over an element within the first page andrepresenting the navigation control.
 27. The method of claim 22, whereinthe condition includes the pointer being positioned over the element fora predetermined amount of time.
 28. A data processing system, comprisinga computer hardware system configured to perform: selecting, from asource post within a displayed first page of a discussion forum,content; performing, on the selected content, a drag operation;displaying, during the drag operation and responsive to a conditionassociated with a navigation control, a second page consistent with thenavigation control; and dropping, into an open reply form within thesecond page, the selected content.
 29. The data processing system ofclaim 28, wherein the dropping includes inserting the content and anattribution to the source post into the open reply form.
 30. The dataprocessing system of claim 28, wherein the displaying the second pagecauses the first page to be not displayed.
 31. The data processingsystem of claim 28, wherein the displaying the second page includesreloading and redisplaying the first page.
 32. The data processingsystem of claim 28, wherein the drag operation is maintained between thefirst page being displayed and the second page being displayed.
 33. Thedata processing system of claim 28, wherein the condition is a pointerbeing positioned over an element within the first page and representingthe navigation control.
 34. The data processing system of claim 33,wherein the condition includes the pointer being positioned over theelement for a predetermined amount of time.
 35. A computer programproduct, comprising: a hardware storage device having stored thereinprogram code, the program code, which when executed by a computerhardware system, causes the computer hardware system to perform:selecting, from a source post within a displayed first page of adiscussion forum, content; performing, on the selected content, a dragoperation; displaying, during the drag operation and responsive to acondition associated with a navigation control, a second page consistentwith the navigation control; and dropping, into an open reply formwithin the second page, the selected content.
 36. The computer programproduct of claim 35, wherein the dropping includes inserting the contentand an attribution to the source post into the open reply form.
 37. Thecomputer program product of claim 35, wherein the displaying the secondpage causes the first page to be not displayed.
 38. The computer programproduct of claim 35, wherein the displaying the second page includesreloading and redisplaying the first page.
 39. The computer programproduct of claim 35, wherein the drag operation is maintained betweenthe first page being displayed and the second page being displayed. 40.The computer program product of claim 35, wherein the condition is apointer being positioned over an element within the first page andrepresenting the navigation control.